﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using Detai.Site.ViewModels;
using Detai.Site.Models;
using Detai.Site.Components;
using Detai.Lib.Common;
using Detai.Site.Properties;

namespace Detai.Site.Controllers
{
    [HandleError]
    public class NopbaiController : Controller
    {
        DetaiDataContext eDataContext = new DetaiDataContext();
        [Authorize]
        public ActionResult Create()
        {
            NopbaiViewModel model = new NopbaiViewModel();
            var temp = new BaseAuthentication();
            var currentUser = temp.CurrentUser;
            var currentSinhvien = eDataContext.Sinhviens.FirstOrDefault(e => e.MaTK == currentUser.MaTK);
            if (currentSinhvien == null) return RedirectToAction("Index", "Thongbao", new { message = "Tài khoản này không phải là tài khoản dành cho sinh viên.<br/> Bạn không thể sử dụng chức năng nộp bài tập." });
            model.Sinhvien = currentSinhvien;
            model.Baigiai = new Baigiai();
            model.Baigiai.MaSV = model.Sinhvien.MaSV;
            return View(model);
        }
        [Authorize]
        [HttpPost]
        public ActionResult Create(NopbaiViewModel formdata)
        {
            try
            {
                formdata.Baigiai.Ngaynop = DateTime.Now;
                UpdateModel(formdata);
                formdata.Baigiai.Xuatban = false;
                // Insert bài giải vào csdl
                eDataContext.Baigiais.InsertOnSubmit(formdata.Baigiai);
                eDataContext.SubmitChanges();
                // upload file bài giải đính kèm nếu có
                HttpPostedFileBase file = Request.Files["filebg"];
                if (file != null && file.ContentLength > 0)
                {
                    formdata.Baigiai.DuongdanFile = Uploads.UploadFile(file, Settings.Default.BaigiaiPath, formdata.Baigiai.MaBG.ToString());
                }
                eDataContext.SubmitChanges();
                return RedirectToAction("index", "Thongbao", new { message = "Bạn đã nộp bài tập thành công. Bài tập của bạn đã được gửi tới hệ thống cho giáo viên chấm bài." });
            }
            catch (Exception exp)
            {
                return RedirectToAction("index", "Thongbao", new { message="Mã bài tập chưa đúng! Bạn vui lòng xem lại"});
            }
        }
    }
}
